.TH std::system_category 3 "2024.06.10" "http://cppreference.com" "C++ Standard Libary"
.SH NAME
std::system_category \- std::system_category

.SH Synopsis
   Defined in header <system_error>
   const std::error_category& system_category() noexcept;  \fI(since C++11)\fP

   Obtains a reference to the static error category object for errors reported by the
   operating system. The object is required to override the virtual function
   std::error_category::name() to return a pointer to the string "system". It is also
   required to override the virtual function
   std::error_category::default_error_condition() to map the error codes that match
   POSIX errno values to std::generic_category.

.SH Parameters

   \fI(none)\fP

.SH Return value

   A reference to the static object of unspecified runtime type, derived from
   std::error_category.

.SH Notes

   On Windows, system_category() typically maps some Windows error codes to POSIX ones.
   On POSIX, system_category() tends to be equivalent to std::generic_category() except
   for the name.

.SH Example


// Run this code

 #include <iomanip>
 #include <iostream>
 #include <string>
 #include <system_error>

 int main()
 {
     for (int const code : {EDOM, 10001})
     {
         const std::error_condition econd =
             std::system_category().default_error_condition(code);

         std::cout << "Category: " << econd.category().name() << '\\n'
                   << "Value:    " << econd.value() << '\\n'
                   << "Message:  " << econd.message() << "\\n\\n";
     }
 }

.SH Possible output:

 Category: generic
 Value:    33
 Message:  Numerical argument out of domain

 Category: system
 Value:    10001
 Message:  Unknown error 10001

.SH See also

   generic_category identifies the generic error category
   \fI(C++11)\fP          \fI(function)\fP
   errc             the std::error_condition enumeration listing all standard <cerrno>
   \fI(C++11)\fP          macro constants
                    \fI(class)\fP
